home *** CD-ROM | disk | FTP | other *** search
/ Aminet 31 / Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso / Aminet / dev / c / cflow.lha / cflow-2.0 / Makefile < prev    next >
Makefile  |  1999-02-20  |  2KB  |  130 lines

  1. # $Id: Makefile,v 1.7 1995/03/06 14:00:00 leisner Exp leisner $
  2. ifeq "$(origin CC)" "default"
  3. CC=gcc
  4. endif
  5.  
  6. # use cp backup option if you have gnu cp
  7. CP=cp
  8. CP=cp -b
  9.  
  10. # where you want to install
  11. ifndef PREFIX
  12. PREFIX=$(HOME)
  13. endif
  14.  
  15. # which shell do we use for the cflow to script?
  16. # I know it works on bash on unix, it also should work with
  17. # msh on ms-dog
  18. ifndef CFLOW_SHELL
  19. CFLOW_SHELL=/bin/bash
  20. endif
  21.  
  22. # actual location of prcc
  23. PRCC_LOC=$(PREFIX)/bin/prcc
  24.  
  25. # actual location of prcg
  26. PRCG_LOC=$(PREFIX)/bin/prcg
  27.  
  28. # CFLOW_SHELL=/usr/gnu/bin/bash
  29.  
  30. PROGS=prcc prcg
  31. # I've seen very long names, and it broke badly with them...
  32.  
  33. DEFS=-DNAME_MAX=50
  34.  
  35. # Set if you use Gray Watson dmalloc library
  36. # MALLOC_DEBUG=true
  37. ifdef MALLOC_DEBUG
  38. LOADLIBES=-L$(HOME)/lib -ldmalloc
  39. endif
  40.  
  41. DEBUG=-g
  42. OPT=-O
  43. CFLAGS=-Wall $(DEBUG) $(OPT) $(DEFS)
  44.  
  45. # set this to where to install
  46. BINDIR=$(PREFIX)/bin
  47.  
  48. SRCS=cflow.sh prcc.c prcg.c
  49.  
  50. PROGS=    prcc prcg
  51.  
  52. all: $(PROGS)  cflow
  53.  
  54. $(PROGS):    %:    %.o
  55.  
  56.  
  57.  
  58. PROTOTYPES= prcc.prototypes.h prcg.prototypes.h
  59.  
  60.  
  61.  
  62. .PHONY:  $(PROTOTYPES)
  63. prototypes:     $(PROTOTYPES)
  64.  
  65.  
  66. install:    install-cflow  install-bins
  67.  
  68. install-bins: $(BINDIR)/prcc $(BINDIR)/prcg
  69.  
  70. install-cflow:    $(BINDIR)/cflow
  71.  
  72. $(BINDIR)/prcc $(BINDIR)/prcg: $(BINDIR)/%:    %
  73.     $(CP) $^ $@
  74.  
  75. $(BINDIR)/cflow:    cflow
  76.     $(CP) $^ $@
  77.  
  78. cflow:    cflow.sh
  79.     sed -e "s;@CFLOW_SHELL@;$(CFLOW_SHELL);g" \
  80.         -e "s;@PRCC@;$(PRCC_LOC);" \
  81.         -e "s;@PRCG@;$(PRCG_LOC);" $< >$@
  82.     chmod +x $@
  83.  
  84.  
  85. test:    cflow
  86.     ./cflow -X 'errno.h stdlib.h' prcc.c >test.prcc
  87.     ./cflow -X 'errno.h stdlib.h' -i prcc.c >test.i.prcc
  88.     diff examples/prcc.cflow test.prcc
  89.     diff examples/prcc.i.cflow test.i.prcc
  90.     # if we got this far, remove examples
  91.     rm test.i.prcc test.prcc
  92.  
  93. $(PROTOTYPES):    %.prototypes.h:    %.c
  94.     cproto -s $^ >$@
  95.  
  96. clean::
  97.     -rm $(PROGS) *.o test.prcc test.i.prcc
  98.  
  99.  
  100. DISTFILES= cflow.lsm $(PROTOTYPES)  TODO  examples cflow.txt cflow.1 $(SRCS) INSTALL  README Makefile
  101.  
  102. tar:    cflow.txt examples
  103.     tar -czf cflow.tar.gz $(DISTFILES) 
  104.     @rm cflow.txt
  105.  
  106.  
  107. shar:    cflow.txt examples 
  108.     shar -T $(DISTFILES)  >cflow.shar
  109.     @rm cflow.txt
  110.  
  111. .PHONY: examples
  112. examples:
  113.     -mkdir examples
  114.     cflow -X 'errno.h stdlib.h' prcc.c >examples/prcc.cflow
  115.     cflow -X 'errno.h stdlib.h' -i prcc.c >examples/prcc.i.cflow
  116.  
  117.     
  118. rcsdiff:
  119.     rcsdiff cflow.1 cflow.sh prcc.c prcg.c Makefile
  120.  
  121.  
  122. cflow.txt:    cflow.1
  123.     groff -Tascii -mandoc $< >$@
  124.  
  125. dos-cflow:
  126.     $(MAKE) CFLOW_SHELL=/marty/bin/shdos16 PREFIX=/dos/marty  install-cflow
  127. zip:
  128.  
  129.